#include <stdio.h>
#include <stdlib.h>

#define N 46    //数据个数
#define M 64    //数据长度

char data[N][M];    //存取文件读取的数据
int mark[N];    //标记数组

//数据抽取数据函数
void fuction(int n, int m) {
    int i, j, k, count;
    for (i = 0; i < N; ++i) {  //初始化标记数组
        mark[i] = 0;
    }
    for (i = 0; i < m; ++i) {
        k = random() % n;   //产生m个随机数
        mark[k] = 1;
    }
}

//输出函数
void output() {
    int i;
    for (i = 0; i < N; ++i) {
        if (mark[i] == 1) {
            printf("%d: %s", i, data[i]);
        }
    }
}

//主函数
int main(int argc, char *argv[]) {
    if (argc < 1)
        return 0;
    int n, m, i = 0;
    n = atoi(argv[1]);    //数据总数
    m = atoi(argv[2]);    //随机抽取的个数
    srand(time());    //使每一次都产生不同随机序列
    while (fgets(data[i], M, stdin) > 0) {    //读取数据
        i++;
    }
    fuction(n, m);
    output();
}